package com.boss.asset.service;

import com.alibaba.fastjson.JSONArray;
import com.boss.common.entity.WfActionDTO;
import com.boss.framework.exception.AppRuntimeException;
import com.boss.sys.ca.user.dto.UserDTO;

import java.util.List;
import java.util.Map;

public interface IAssetInfoService {


    /**
     * 查询 审核后的 资产信息
     * @param agencyCode
     * @param province
     * @param year
     * @return
     */
    List<Map<String, Object>>  queryAssetInfo(String agencyCode, String province, String year);

    /**
     *审核通过 接口
     * @param userDTO
     * @param wfAction
     * @throws AppRuntimeException
     */
    void passAssetInfo(UserDTO userDTO, WfActionDTO wfAction) throws AppRuntimeException;

    /**
     * 获取基础数据code和name
     * @param elementCode
     * @param province
     * @return
     */
    public Map<String,String> getBaseData(String elementCode,String province) ;

    /**
     * 获取基础数据code和name 用于select
     * @param elementCode
     * @param province
     * @return
     */
    public List<Map<String, String>> getBaseDataSelect(String elementCode,String province) ;

    /**
     * 获取工资类别
     * @param elementCode
     * @param province
     * @return
     */
    List<Map<String, Object>> getPayCategoryTree(String elementCode, String province);

    /**
     * 获取部门经济分类树
     * @param elementCode
     * @param province
     * @return
     */
    List<Map<String, Object>> getBaseDataDepBgtEcoTree(String elementCode, String province);
    /**
     * 获取政府经济分类树
     * @param elementCode
     * @param province
     * @return
     */
    List<Map<String, Object>> getBaseDataGovBgtEcoTree(String elementCode, String province);
    /**
     * 获取支出功能分类科目树
     * @param elementCode
     * @param province
     * @return
     */
    List<Map<String, Object>> getBaseDataFuncTree(String elementCode, String province);
    /**
     * 获取基础数据
     * @param elementCode
     * @param province
     * @return
     */
    JSONArray getBaseDataInfo(String elementCode,String province);

    /**
     * 获取预算项目下拉框
     * @param userDTO
     * @return
     */
     List<Map<String, String>> getProDataSelect(UserDTO userDTO);

    /**
     * 获取基础数据code和name 用于tree
     * @param elementCode
     * @param province
     * @return
     */
     JSONArray getBaseDataTree(String elementCode, String province);




    JSONArray getAuthAgency(UserDTO userDTO, String elemtntCode);

    /**
     *  查询工作流代办信息
     * @param config
     * @param userguid
     * @param roleguid
     * @param menuguid
     * @param province
     * @param year
     * @return
     * @throws AppRuntimeException
     */
    List<Map<String, Object>> getFlowTaskData(Map<String, Object> config, String userguid,String roleguid,String menuguid,String province, String year) throws AppRuntimeException;



}
